Analyze AquaMaps

Code
librarian::shelf(
  # ecoquants/offhabr,
  r-spatial/mapview, # dev mapview works with terra, per https://github.com/r-spatial/mapview/pull/435
  DBI, dplyr, DT, exactextractr, leaflet, leaflet.extras, mapview, 
  scales, sf, tibble, terra, zeallot,
  quiet = T)
devtools::load_all("~/Github/ecoquants/offhabr")
select = dplyr::select

1 Map Zones, Blocks and Cells

Using a customized offhabr R package.

Code
oh_zones_s1k %>% 
  mapview(zcol = "zone_name")
Code
boem_blocks %>% 
  mapview(zcol = "zone_key")
Code
am_cell_zones %>% 
  st_simplify(T, 1000) %>% 
  mapview(zcol = "zone_key")

2 Species Richness per Cell

Species Richness per AquaMaps Cell

Code
con <- oh_pg_con()

# aggregate to cells
c_nspp <- tbl(con, "am_spp_cells") %>% 
  group_by(hcaf_id) %>% 
  summarize(
    nspp = n()) %>% 
  collect() %>% 
  mutate(
    nspp = as.integer(nspp))

c_nspp <- am_cell_zones %>% 
  st_simplify(T, 1000) %>%
  mutate(
    geom_type = st_geometry_type(geom)) %>% 
  filter(
    geom_type != "GEOMETRYCOLLECTION") %>% 
  left_join(
    c_nspp,
    by = "hcaf_id")
c_nspp_caption <- glue("Species richness for all cells (avg: {round(mean(c_nspp$nspp), 1)}; range: {paste(round(range(c_nspp$nspp), 1), collapse= ' to ')}).")
Code
oh_map() %>% 
  oh_add_ply(
    ply     = c_nspp, 
    fld_val = nspp,
    fld_id  = hcaf_id, 
    str_val = "# species", 
    str_id  = "Cell",
    div_mid = mean(c_nspp$nspp),
    brdr_weight = 0.2,
    smoothFactor = 0.1)

Species richness for all cells (avg: 1631.4; range: 435 to 6048).

3 Species Richness per Zone

Code
# aggregate to zones
z_nspp <- oh_zones_s1k %>% 
  select(zone_key, zone_name) %>% 
  left_join(
    c_nspp %>% 
      st_drop_geometry() %>% 
      group_by(zone_key) %>% 
      summarize(
        nspp = weighted.mean(nspp, area_km2)),
    by = "zone_key") %>% 
  mutate(
    nspp_zscore = scale(nspp)[,1]) %>% 
  relocate(zone_name, .after = zone_key)

oh_map() %>% 
  oh_add_ply(
    ply     = z_nspp, 
    fld_val = nspp,
    fld_id  = zone_name, 
    str_val = "# species", 
    str_id  = "Zone",
    div_mid = mean(z_nspp$nspp))
Code
z_nspp %>% 
  st_drop_geometry() %>% 
  datatable()

4 Species Richness per Block, all Zones

Code
# aggregate to blocks
b_nspp <- am_cell_blocks %>% 
  left_join(
    c_nspp %>% 
      st_drop_geometry() %>% 
      select(hcaf_id, nspp),
    by = "hcaf_id") %>% 
  group_by(
    zone_key, block_key) %>% 
  summarize(
    nspp = weighted.mean(nspp, area_km2),
    .groups = "drop") %>% 
  left_join(
    oh_zones %>% 
      st_drop_geometry() %>% 
      select(zone_key, zone_name),
    by = "zone_key") %>% 
  relocate(zone_name, .after = zone_key)

oh_map() %>% 
  oh_add_ply(
    ply     = b_nspp, 
    fld_val = nspp,
    fld_id  = block_key, 
    str_val = "# species", 
    str_id  = "Block",
    div_mid = mean(b_nspp$nspp))
Code
b_nspp %>% 
  st_drop_geometry() %>% 
  datatable()

5 Species Richness per Zone with Blocks

Code
devtools::load_all("~/Github/ecoquants/offhabr")
zkeys <- oh_zones %>% 
  filter(
    zone_key %in% unique(b_nspp$zone_key)) %>% 
  arrange(zone_name) %>% 
  pull(zone_key)

get_zb1 <- function(zone_key){
  z1_nspp <- z_nspp %>% 
    filter(zone_key == !!zone_key)
  b1_nspp <- b_nspp %>% 
    filter(zone_key == !!zone_key)
  zone_name <- z1_nspp$zone_name
  map_caption <- glue("Species richness for {zone_name} zone (avg: {round(z1_nspp$nspp, 1)}) and blocks (avg: {round(mean(b1_nspp$nspp), 1)}; range: {paste(round(range(b1_nspp$nspp), 1), collapse= ' to ')}).")
  list(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)
}

map_zb1 <- function(z1_nspp, b1_nspp){
  oh_map() %>% 
    oh_add_ply(
      ply     = z1_nspp, 
      fld_val = nspp,
      fld_id  = zone_name, 
      str_val = "# species", 
      str_id  = "Zone",
      div_mid = z1_nspp$nspp,
      add_legend = F) %>% 
    oh_add_ply(
      ply     = b1_nspp, 
      fld_val = nspp,
      fld_id  = block_key, 
      str_val = "# species", 
      str_id  = "Block",
      div_mid = z1_nspp$nspp,
      brdr_weight = 0.2,
      smoothFactor = 0)
}
# get_zb1("mda") %->%
#   c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)
# map_zb1(z1_nspp, b1_nspp)

get_zb1(zkeys[1]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.1 Central California

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Central California zone (avg: 561.1) and blocks (avg: 771; range: 771 to 771).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[2]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.2 Central Gulf of Mexico

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Central Gulf of Mexico zone (avg: 1872.8) and blocks (avg: 3248.7; range: 3140 to 4026).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[3]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.3 Mid Atlantic

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Mid Atlantic zone (avg: 1454.6) and blocks (avg: 1944.6; range: 771 to 3728).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[4]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.4 North Atlantic

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for North Atlantic zone (avg: 1509.2) and blocks (avg: 2023.4; range: 800 to 2317).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[5]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.5 Northern California

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Northern California zone (avg: 630.9) and blocks (avg: 1408.6; range: 1331 to 1544).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[6]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.6 South Atlantic

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for South Atlantic zone (avg: 2526.1) and blocks (avg: 3522.6; range: 3164 to 4479).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[7]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.7 Southern California

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Southern California zone (avg: 801.5) and blocks (avg: 981.1; range: 701 to 1196).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[8]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.8 Washington/Oregon

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Washington/Oregon zone (avg: 679.1) and blocks (avg: 1055.4; range: 698 to 1385).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()
Code
get_zb1(zkeys[9]) %->% 
  c(zone_key, zone_name, z1_nspp, b1_nspp, map_caption)

5.9 Western Gulf of Mexico

Code
map_zb1(z1_nspp, b1_nspp)

Species richness for Western Gulf of Mexico zone (avg: 2798.2) and blocks (avg: 3531.6; range: 2896.3 to 3757).

Code
b1_nspp %>% 
  st_drop_geometry() %>% 
  datatable()